// function readData(datalist, attr = 'name', output = []) {
//   if (!datalist) return output
//   for (let i = 0; i < datalist.length; i++) {
//     if (datalist[i][attr]) {
//       output.push(datalist[i][attr])
//     }
//     if (datalist[i].children) {
//       readData(datalist[i].children, attr = 'name', output)
//     }
//   }
//   return output
// }

// JSON.stringify
// console.log(readData([{ name: '研发线', children: [{ name: '开发部', children: [{ name: '前端组' }, { name: '后端组' }] }, { name: '测试部', children: [] }] }]).join(' '))


// function divideByNum(arr) {
//   const res = []
//   for (let i = 0; i < arr.length; i++) {
//     if (arr[i] % 3 === 0) {
//       res.push(arr[i])
//     }
//   }
//   return res
// }

// console.log(divideByNum([12, 4, 5, 13, 15, 21, 34, 65, 27]))


// function toCamelCase(string) {
//   let arr = string.split('')
//   for (let i = 0; i < arr.length; i++) {
//     if (arr[i].charCodeAt() <= 90 && arr[i].charCodeAt() >= 65) {
//       arr[i] = arr[i].toLowerCase()
//     }
//     if (arr[i] === '_') {
//       arr.splice(i, 1)
//       arr[i].toUpperCase()
//     }
//   }
//   return arr.join('')
// }


// console.log(toCamelCase('Hell_o_World'))


function formatter(template, values) {
  let arr = template.split('')
  let start, end;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === '{') {
      start = i
    }
    if (arr[i] === '}') {
      end = i
    }
  }
  let n = arr.slice(start + 1, end).join('')
  console.log(n)
  let res = template.replace(/^\$\{*\}$/, values[n])

  return res
}



console.log(formatter('Hello, ${who}', { who: 'World' }))